*******************************************************************************
●ドキュメント種別      ：3rdSTEP(1994-11-11) -> 1996-07-01 変更点
●対象ライブラリ記号名称：snd
●対象ライブラリ名称    ：サウンドＩ／Ｆ
●バージョン　　        ：1.08
●作成者                ：K.T / Y.K
●作成日                ：1996-07-10
●その他のメッセージ    ：なし
*******************************************************************************

///////////////////////////////////////////////////////////////////////////////
◆変更詳細　Ｖｅｒ１．０５−＞Ｖｅｒ１．０５（サンプルシーケンスデータの不良
            対策）
///////////////////////////////////////////////////////////////////////////////
■サンプルデータの不良対策
    1994-11-11提供のsmpsnd1では，シーケンスデータを発音できない不良がありまし
    た．これは，シーケンスデータをサウンドドライバVer1.27用へ変更していなかっ
    たためです．以下にsmpsnd1のデータファイルの説明と変更ファイルを示します．
    (サウンドドライバの仕様変更についてはsaturn\segadrv\manのドキュメントを参
    照してください．）

        smpsnd1データファイル一覧       変更ファイル
        --------------------------------------------
        boottone.bin	音色
        bootse.bnk		シーケンス      ○
        pitch.bnk		シーケンス      ○
        bootse.exb		DSPﾌﾟﾛｸﾞﾗﾑ
        vc_ps.exb		DSPﾌﾟﾛｸﾞﾗﾑ
        surround.exb	DSPﾌﾟﾛｸﾞﾗﾑ
        3bandana.exb	DSPﾌﾟﾛｸﾞﾗﾑ
        bootsnd.mp		エリアマップ    ○

        ※bootsnd.mp（エリアマップ）は，シーケンスデータサイズが変更になった
        　ため変更しました．以下にbootsnd.mp内のシーケンスデータサイズ変更点
        　を示します．
                
                                1994-11-11      1994-12-27
                ------------------------------------------
                データ番号 0    2000H       ->  4000H
                データ番号 1    2000H       ->  4000H

///////////////////////////////////////////////////////////////////////////////
◆マニュアル追加情報
///////////////////////////////////////////////////////////////////////////////
■仕様変更
    ●変更概略
        ・修正
            (1)SND_ChgMap時の手順修正
        
        ・追加
            (2)SND_Init(),SND_MoveData()実行方法説明追加
            (3)DSP中止コマンド追加
            (4)全サウンド発音中止コマンド追加
            (5)シーケンスPAN設定コマンド追加
            (6)サウンドコントロール設定（STEREO/MONOモード設定）コマンド追加

    ●変更詳細
        ■関数仕様

            ・サウンドシステム起動
                +---------------------------------------------------+
                | サウンドシステム起動      | SND_Init              |
                +---------------------------------------------------+
                ....
                SND_Init()を割込み処理内で実行しないようにしてください．

            ・演奏準備
                +---------------------------------------------------+
                | サウンドデータ転送      | SND_MoveData            |
                +---------------------------------------------------+
                ....
                デフォルトの割込み優先度の場合，SND_MoveData()を割込み処理内で
                使用しないようにしてください．割込み処理内で使用するためには，
                割込み優先度をDMA終了割込みが割込み処理内で取得できるように変
                更してください．割込み優先度を変更するにはシステムライブラリを
                使用してください．サウンドのサンプルプログラム(SMPSND4)に例を
                示してあります．

            ・サウンドコントロール - 共通
                +---------------------------------------------------+
                | サウンドエリアマップ変更  | SND_ChgMap            |
                +---------------------------------------------------+
                ....
                ★★★★★　お願い　★★★★★
                サウンドエリアマップ変更時に音がなっていたり，DSPが動作中だっ
                た場合に，マップを切り替えたり，使用中のサウンドデータを入れ替
                えたりするとサウンドドライバシステムが暴走する場合があります．
                よって以下のことを必ず守ってください．

                    サウンドエリアマップ変更関数は，CD-DAの音がなっていないと
                    きに，以下の２つのコマンドを実行した後に実行してください．
                        
                        ・DSP中止関数
                        ・全サウンド発音中止関数

                +---------------------------------------------------+
                | DSP中止           |SND_StopDsp                    |
                +---------------------------------------------------+
                書式    SndRet SND_StopDsp(void)
                入力    なし
                出力    なし
                関数値  コマンド実行状態
                機能    DSPマイクロプログラムの実行を中止します．
        
                +---------------------------------------------------+
                | 全サウンド発音中止           |SND_OffAllSound     |
                +---------------------------------------------------+
                書式    SndRet SND_OffAllSound(void)
                入力    なし
                出力    なし
                関数値  コマンド実行状態
                機能    全サウンド発音を中止します．
        
            ・サウンドコントロール - シーケンス
                +---------------------------------------------------+
                | シーケンスPAN設定         |SND_SetSeqPan          |
                +---------------------------------------------------+
                書式    SndRet SND_SetSeqPan(SndSeqNum seq_no, Uint8 ctrl_sw,
                                             Uint8 md_pan)
                入力    seq_no  ：発音管理番号
                        ctrl_sw ：コントロールスイッチ
                            SND_SEQ_PAN_ON  = Control ON
                            SND_SEQ_PAN_OFF = Control OFF
                        md_pan  ：MIDI PAN data
                            値の範囲    0x00〜0x7f
                            値の意味
                                +---------------------------+
                                | left <-- Center --> Right |
                                +---------------------------+
                                | 0x00 <--  0x40  --> 0x7f  |
                                +---------------------------+
                出力    なし
                関数値  コマンド実行状態
                機能    シーケンスのPANを設定します．（詳細はサウンド開発マニ
                        ュアルのサウンドドライバシステムインタフェースをご覧く
                        ださい．）

            ・その他
                +---------------------------------------------------+
                | サウンドコントロール設定      | SND_SET_SND_CTRL  |
                +---------------------------------------------------+
                書式    void SND_SET_SND_CTRL(Uint8 snd_ctrl)
                入力    サウンドコントロール値
                            SND_CTRL_OUTPUT_STEREO  ：ステレオ
                            SND_CTRL_OUTPUT_MONO    ：モノラル
                出力    なし
                関数値  なし
                機能    サウンドコントロール値を設定します．現在はステレオ／モ
                        ノラルのモードを選択し設定できます．
        
                +---------------------------------------------------+
                | サウンドコントロール取得      | SND_GET_SND_CTRL  |
                +---------------------------------------------------+
                書式    Uint8 SND_GET_SND_CTRL(void)
                入力    なし
                出力    サウンドコントロール値
                            SND_CTRL_OUTPUT_STEREO  ：ステレオ
                            SND_CTRL_OUTPUT_MONO    ：モノラル
                関数値  なし
                機能    サウンドコントロール値を取得します．
        
■補足説明
    ●サウンドメモリへのアクセスについて
        サウンドメモリへ頻繁にアクセスすることを禁止します．ホスト側(SH)からサ
        ウンドメモリへ頻繁にアクセスすると，そのメモリはサウンドドライバが見る
        ことができないため，サウンドドライバが動作しなくなります．
        
        　（例）SND_StartSeq(1,0,0,0);
                while(SND_SEQ_STAT_MODE(status) == SND_MD_STOP){
                    SND_GetSeqStat(&status, 0);
                }
                
                上記の場合，永久ループしてしまう可能性があります．理由はホスト
                側がステータスのメモリを頻繁にアクセスするため，シーケンスが終
                了してもサウンドドライバがSTOPのシーケンスをステータスのメモリ
                へ書き込めないためです．
        
■注意
    ●1994-08-22提供のサンプルSMPSND3.C について
        このサンプルを削除します．理由はこのサンプルで使用している割込みステー
        タスレジスタがSCUのハード制限のため使用できなくなったためです．

    ●サンプルプログラムのPCMデータについて
        smpsnd4とsmpsnd5に使用しているPCMデータ音を聞くと，おかしな曲に聞
        こえます．ハード，及びソフトの不具合ではありません．PCMデータがおかし
        いためです．ご了承ください．
        
///////////////////////////////////////////////////////////////////////////////
◆変更詳細　Ｖｅｒ１．０６
///////////////////////////////////////////////////////////////////////////////
■２重呼び出し防止の対策の変更
  サウンドドライバに対してコマンド発行中の割り込み禁止を割り込みをマスクするので
はなく，フラグで管理するようにした．

■マップチェンジ時の完了チェックの方法の変更
　マップチェンジ時の完了チェックに待ち時間を加え，ドライバの動作に負担がかから
ないようにした．

///////////////////////////////////////////////////////////////////////////////
◆変更詳細　Ｖｅｒ１．０７
///////////////////////////////////////////////////////////////////////////////
■シ−ケンスパンの不具合を修正
　シ−ケンスパンコマンドが正常に発行されない不具合を修正した．

■３Ｄのパラメ−タセット関数を追加
　ＱＳＯＵＮＤ，ヤマハ３Ｄのパラメ−タをセットする関数を追加した．

///////////////////////////////////////////////////////////////////////////////
◆マニュアル追加情報
///////////////////////////////////////////////////////////////////////////////
■仕様変更
    ●変更概略
        ・修正
            (1)SND_SetSeqPan時のコマンド発行に関する不具合を修正
        
        ・追加
            (2)SND_SetQSound(),SND_Set3D_Stat(),SND_Set3D_Init()実行方法説明追加
    ●変更詳細
        ■関数仕様

            ・ＱＳＯＵＮＤパラメ−タセット
                +---------------------------------------------------+
                | ＱＳＯＵＮＤパラメ−タセット| SND_SetQSound       |
                +---------------------------------------------------+
                書式    SndRet SND_SetQSound(Uint8 QCh, Uint8 QSt)
                入力    QCh ：コントロ−ルするＱＳＯＵＮＤチャンネル
                	QSt ：QSOUND PAN data ( 0x00〜0x1e )
                            値の意味
                                +---------------------------+
                                | left <-- Center --> Right |
                                +---------------------------+
                                | 0x00 <--  0x0f  --> 0x1e  |
                                +---------------------------+
                出力    なし
                関数値  コマンド実行状態
                機能    ＱＳＯＵＮＤの定位を設定します．（詳細はサウンド開発マ
                	ニュアルのサウンドドライバシステムインタフェースをご覧
                	ください．）
            ・YAMAHA 3D パラメ−タセット
                +---------------------------------------------------+
                | YAMAHA 3D パラメ−タセット | SND_Set3D_Stat       |
                +---------------------------------------------------+
                書式    SndRet SND_Set3D_Stat(Uint8 Y3DDst, Uint8 Y3DAzm,
                			      Uint8 Y3DElv)
                入力    Y3DDst ：距離 ( 0x00〜0x7f )
                	Y3DAzm ：方位 ( 0x00〜0x7f )
                	Y3DElv ：高さ ( 0x00〜0x7f )
                出力    なし
                関数値  コマンド実行状態
                機能    YAMAHA 3D の定位を設定します．  （詳細はサウンド開発マ
                	ニュアルのサウンドドライバシステムインタフェースをご覧
                	ください．）
            ・YAMAHA 3D 定位初期化
                +---------------------------------------------------+
                | YAMAHA 3D 定位初期化  | SND_Set3D_Init            |
                +---------------------------------------------------+
                書式    SndRet SND_Set3D_Init()
                入力    なし
                出力    なし
                関数値  コマンド実行状態
                機能    YAMAHA 3D の定位を正面中央に設定します．（詳細はサウン
                	ド開発マニュアルのサウンドドライバシステムインタフェー
                	スをご覧ください．）

///////////////////////////////////////////////////////////////////////////////
◆変更詳細　Ｖｅｒ１．０８
///////////////////////////////////////////////////////////////////////////////

■完了チェックの待ち時間のためダミーアドレスのの変更
　マップチェンジ時の完了チェックに加えた待ち時間の処理のダミーリードアドレスを
変更した．
********************************** end of file ********************************
